package com.serviportales.serviquality.model;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.serviportales.serviportales.model.GenericEntity;
import com.serviportales.serviquality.model.pk.ProyectoNodoPK;

@Entity
@Table(name = "TSQ_PROYECTO_NODO")
public class ProyectoNodo extends GenericEntity<ProyectoNodo> {
	private static final long serialVersionUID = 1L;

	@EmbeddedId
	private ProyectoNodoPK proyectoNodoPK = new ProyectoNodoPK();

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({ @JoinColumn(name = "CDNODO_PARENT", referencedColumnName = "CDNODO"), @JoinColumn(name = "CDTIPO_NODO_PARENT", referencedColumnName = "CDTIPO_NODO"), @JoinColumn(name = "CDARBOL_PARENT", referencedColumnName = "CDARBOL") })
	private ProyectoNodo parent;

	@Column(name = "PESO")
	private Long peso;

	@Column(name = "VALOR_ESPERADO")
	private Long valorEsperado;

	@Column(name = "CALIFICACION")
	private Long calificacion;

	@Column(name = "CONCLUSION", length = 700)
	private String conclusion;

	@Transient
	private Long poPendienteAsignar;

	public ProyectoNodoPK getProyectoNodoPK() {
		return proyectoNodoPK;
	}

	public void setProyectoNodoPK(ProyectoNodoPK proyectoNodoPK) {
		this.proyectoNodoPK = proyectoNodoPK;
	}

	public ProyectoNodo getParent() {
		return parent;
	}

	public void setParent(ProyectoNodo parent) {
		this.parent = parent;
	}

	public Long getPeso() {
		return peso;
	}

	public void setPeso(Long peso) {
		this.peso = peso;
	}

	public Long getValorEsperado() {
		return valorEsperado;
	}

	public void setValorEsperado(Long valorEsperado) {
		this.valorEsperado = valorEsperado;
	}

	public String getConclusion() {
		return conclusion;
	}

	public void setConclusion(String conclusion) {
		this.conclusion = conclusion;
	}

	public Long getCalificacion() {
		return calificacion;
	}

	public void setCalificacion(Long calificacion) {
		this.calificacion = calificacion;
	}

	public Long getPoPendienteAsignar() {
		return poPendienteAsignar;
	}

	public void setPoPendienteAsignar(Long poPendienteAsignar) {
		this.poPendienteAsignar = poPendienteAsignar;
	}
}
